package com.db.dao;

import java.util.ArrayList;
import java.util.Locale;

import utils.FalhasLocaisInternos;
import utils.db.DatabaseStarter;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

public class FalhasLocaisInternosDAO {
	
	private DatabaseStarter db;
	private static String TABLE_FALHAS_LOCAIS_INTERNOS = "ucopa_falhas_locais_internos";
	private String lang = Locale.getDefault().getLanguage().toString();

	//FALHAS LOCAIS INTERNOS
    private static final String CREATE_TABLE_FALHAS_LOCAIS_INTERNOS = "CREATE TABLE "
            + TABLE_FALHAS_LOCAIS_INTERNOS + "(" + "id" + " INTEGER PRIMARY KEY," + 
            "parent_id" + " INTEGER," + "left" + " INTEGER," + "rgt" + " INTEGER," +
            "title TEXT,title_en TEXT," +  "imagem" + " TEXT," + "cormapa" + " TEXT" + ")";
	
	
	public FalhasLocaisInternosDAO(DatabaseStarter db) {
		this.db = db;
	}
	
	public void insereFalhasLocais(FalhasLocaisInternos flinternos) {
		 SQLiteDatabase database = this.db.getWritableDatabase();
		 ContentValues values = new ContentValues();
		 
		 values.put("id", flinternos.getId());
	     values.put("left", flinternos.getLeft());
	     values.put("rgt", flinternos.getRight());
	     values.put("parent_id", flinternos.getParent_id());
	     values.put("title", flinternos.getTitle());
	     values.put("title_en", flinternos.getTitleEn());
	     values.put("cormapa", flinternos.getCorMapa());
	     values.put("imagem", flinternos.getImagem());
		 
	     database.insert(TABLE_FALHAS_LOCAIS_INTERNOS, null, values);
	}
	
	public ArrayList<FalhasLocaisInternos> retornaTodasAsFalhasLocais () {
		ArrayList<FalhasLocaisInternos> falhas = new ArrayList<FalhasLocaisInternos>();
		String selectQuery = "SELECT  * FROM " + TABLE_FALHAS_LOCAIS_INTERNOS + " ORDER BY title";
		 
        SQLiteDatabase database = this.db.getReadableDatabase();
        Cursor c = database.rawQuery(selectQuery, null);
 
        // looping through all rows and adding to list
        if (c.moveToFirst()) {
            do {
                FalhasLocaisInternos flinternos = new FalhasLocaisInternos();
                flinternos.setId(c.getInt((c.getColumnIndex("id"))));
                flinternos.setParent_id(c.getInt((c.getColumnIndex("parent_id"))));
                flinternos.setRight(c.getInt((c.getColumnIndex("rgt"))));
                flinternos.setLeft(c.getInt((c.getColumnIndex("left"))));
                String title = (lang.equalsIgnoreCase("en"))?c.getString((c.getColumnIndex("title_en"))):c.getString((c.getColumnIndex("title")));
                flinternos.setTitle(title);
                flinternos.setCorMapa(c.getString((c.getColumnIndex("cormapa"))));
                flinternos.setImagem(c.getString((c.getColumnIndex("imagem"))));
                // adding to todo list
                falhas.add(flinternos);
            } while (c.moveToNext());
        }
 
        return falhas;
	}
	
	public void deletaTodosOsLocaisDeFalhas() {
		SQLiteDatabase database = this.db.getWritableDatabase();
		database.execSQL("DROP TABLE IF EXISTS " + TABLE_FALHAS_LOCAIS_INTERNOS);
		database.execSQL(CREATE_TABLE_FALHAS_LOCAIS_INTERNOS);
	}

}
